
package com.loan.rebate.news.entity;

import java.util.Date;

import org.apache.commons.lang3.StringUtils;

import com.loan.rebate.sensitiveword.SensitiveWordUtils;

/**
 * 资讯实体类
 *
 * @author 朱国军
 * @version 2016年06月26日 朱国军
 */
public class NewsInfoVO {
    
    /** 资讯ID */
    private String newsId;
    
    /** 资讯图片 */
    private String newsPicture;
    
    /** 资讯标题 */
    private String newsTitle;
    
    /** 资讯摘要 */
    private String newsDigest;
    
    /** 资讯状态：1，待审核；2，审核通过 */
    private Integer newsStatus;
    
    /** 资讯/交易的艺术 */
    private Integer newsType;
    
    /** 资讯关键词多个以,分隔 */
    private String newsLabel;

    /** 资讯关键字 */
    private String newsKeyWords;
    
    /** 资讯分类：1、影视，2股权，3，数据，4，法律 */
    private Integer newsClassify;
    
    /** 交易的艺术分类 */
    private Integer artClassify;
    
    /** 资讯内容 */
    private String newsInfo;
    
    /** 发布时间 */
    private Date publishTime;
    
    /** 来源 */
    private String newsFrom;
    
    /** 新闻作者 */
    private String newsAuthor;
    
    /** 创建人 */
    private String createUser;
    
    /** 更新时间 */
    private Date updateTime;
    
    /** 创建时间 */
    private Date createTime;
    
    /** 状态：0默认，1管理员删除，2用户删除 */
    private Integer dataStatus;

    /** 评论数量 */
    private Integer discussNum;
    
    /**
     * 设置资讯ID
     *
     * @param newsId 资讯ID
     */
    public void setNewsId(String newsId) {
        this.newsId = newsId;
    }
    
    /**
     * 获取资讯ID
     *
     * @return 资讯ID
     */
    public String getNewsId() {
        return newsId;
    }
    
    /**
     * 设置资讯图片
     *
     * @param newsPicture 资讯图片
     */
    public void setNewsPicture(String newsPicture) {
        this.newsPicture = newsPicture;
    }
    
    /**
     * 获取资讯图片
     *
     * @return 资讯图片
     */
    public String getNewsPicture() {
        return newsPicture;
    }
    
    /**
     * 设置资讯标题
     *
     * @param newsTitle 资讯标题
     */
    public void setNewsTitle(String newsTitle) {
        this.newsTitle = newsTitle;
    }
    
    /**
     * 获取资讯标题
     *
     * @return 资讯标题
     */
    public String getNewsTitle() {
        return newsTitle;
    }
    
    /**
     * 设置资讯摘要
     *
     * @param newsDigest 资讯摘要
     */
    public void setNewsDigest(String newsDigest) {
        this.newsDigest = newsDigest;
    }
    
    /**
     * 获取资讯摘要
     *
     * @return 资讯摘要
     */
    public String getNewsDigest() {
        return newsDigest;
    }

    /**
     * 获取资讯状态：1，待审核；2，审核通过；3，审核不通过
     *
     * @return 1，待审核；2，审核通过；3，审核不通过
     */
    public Integer getNewsStatus() {
        return newsStatus;
    }

    /**
     * 设置 1，待审核；2，审核通过；3，审核不通过
     *
     * @param newsStatus 1，待审核；2，审核通过；3，审核不通过
     */
    public void setNewsStatus(Integer newsStatus) {
        this.newsStatus = newsStatus;
    }

    /**
     * 设置资讯关键词多个以,分隔
     *
     * @param newsLabel 资讯关键词多个以,分隔
     */
    public void setNewsLabel(String newsLabel) {
        if (!StringUtils.startsWith(newsLabel, ",")) {
            newsLabel = "," + newsLabel;
        }

        if (!StringUtils.endsWith(newsLabel, ",")) {
            newsLabel = newsLabel + ",";
        }
        
        this.newsLabel = newsLabel;
    }
    
    /**
     * 获取资讯关键词多个以,分隔
     *
     * @return 资讯关键词多个以,分隔
     */
    public String getNewsLabel() {
        return newsLabel;
    }
    
    /**
     * 设置资讯分类：1、影视，2股权，3，数据，4，法律
     *
     * @param newsClassify 资讯分类：1、影视，2股权，3，数据，4，法律
     */
    public void setNewsClassify(Integer newsClassify) {
        this.newsClassify = newsClassify;
    }
    
    /**
     * 获取资讯分类：1、影视，2股权，3，数据，4，法律
     *
     * @return 资讯分类：1、影视，2股权，3，数据，4，法律
     */
    public Integer getNewsClassify() {
        return newsClassify;
    }

    /**
     * 获取资讯关键字
     *
     * @return 资讯关键字
     */
    public String getNewsKeyWords() {
        return newsKeyWords;
    }

    /**
     * 设置资讯关键字
     *
     * @param newsKeyWords 资讯关键字
     */
    public void setNewsKeyWords(String newsKeyWords) {
        this.newsKeyWords = newsKeyWords;
    }

    /**
     * 设置资讯内容
     *
     * @param newsInfo 资讯内容
     */
    public void setNewsInfo(String newsInfo) {
        this.newsInfo = newsInfo;
    }
    
    /**
     * 获取资讯内容
     *
     * @return 资讯内容
     */
    public String getNewsInfo() {
        return newsInfo;
    }
    
    /**
     * 设置发布时间
     *
     * @param publishTime 发布时间
     */
    public void setPublishTime(Date publishTime) {
        this.publishTime = publishTime;
    }
    
    /**
     * 获取发布时间
     *
     * @return 发布时间
     */
    public Date getPublishTime() {
        return publishTime;
    }
    
    /**
     * 设置来源
     *
     * @param newsFrom 来源
     */
    public void setNewsFrom(String newsFrom) {
        this.newsFrom = newsFrom;
    }
    
    /**
     * 获取来源
     *
     * @return 来源
     */
    public String getNewsFrom() {
        return newsFrom;
    }
    
    /**
     * 设置新闻作者
     *
     * @param newsAuthor 新闻作者
     */
    public void setNewsAuthor(String newsAuthor) {
        this.newsAuthor = newsAuthor;
    }
    
    /**
     * 获取新闻作者
     *
     * @return 新闻作者
     */
    public String getNewsAuthor() {
        return newsAuthor;
    }
    
    /**
     * 设置创建人
     *
     * @param createUser 创建人
     */
    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }
    
    /**
     * 获取创建人
     *
     * @return 创建人
     */
    public String getCreateUser() {
        return createUser;
    }
    
    /**
     * 设置更新时间
     *
     * @param updateTime 更新时间
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    
    /**
     * 获取更新时间
     *
     * @return 更新时间
     */
    public Date getUpdateTime() {
        return updateTime;
    }
    
    /**
     * 设置创建时间
     *
     * @param createTime 创建时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    
    /**
     * 获取创建时间
     *
     * @return 创建时间
     */
    public Date getCreateTime() {
        return createTime;
    }
    
    /**
     * 设置状态：0默认，1管理员删除，2用户删除
     *
     * @param dataStatus 状态：0默认，1管理员删除，2用户删除
     */
    public void setDataStatus(Integer dataStatus) {
        this.dataStatus = dataStatus;
    }
    
    /**
     * 获取状态：0默认，1管理员删除，2用户删除
     *
     * @return 状态：0默认，1管理员删除，2用户删除
     */
    public Integer getDataStatus() {
        return dataStatus;
    }

    /**
     * 获取评论数量
     *
     * @return 评论数量
     */
    public Integer getDiscussNum() {
        return discussNum;
    }

    /**
     * 设置评论数量
     *
     * @param discussNum 评论数量
     */
    public void setDiscussNum(Integer discussNum) {
        this.discussNum = discussNum;
    }
    
    /**
     * 获取资讯/交易的艺术
     *
     * @return
     */
    public Integer getNewsType() {
        return newsType;
    }
    
    /**
     * 设置资讯/交易的艺术
     *
     * @param newsType
     */
    public void setNewsType(Integer newsType) {
        this.newsType = newsType;
    }
    
    /**
     * 获取交易的艺术分类
     *
     * @return
     */
    public Integer getArtClassify() {
        return artClassify;
    }
    
    /**
     * 设置交易的艺术分类
     *
     * @param artClassify
     */
    public void setArtClassify(Integer artClassify) {
        this.artClassify = artClassify;
    }
    
    /**
     * 检查字段长度是否超长，检查非空字段是否有值
     *
     * @return 检查提示信息，为null时表示检查通过
     */
    public String valid() {
        
        if (StringUtils.isNotBlank(newsTitle) && newsTitle.length() > 100) {
            return "资讯标题值超长，允许输入的最大长度为：100字符";
        }
        
        if (SensitiveWordUtils.isContaintSensitiveWord(newsTitle, 1)) {
            return "资讯标题中包含敏感词汇:" + SensitiveWordUtils.getSensitiveWord(newsTitle, 1) + "，请检查后再保存";
        }
        
        if (StringUtils.isNotBlank(newsDigest) && newsDigest.length() > 400) {
            return "资讯摘要值超长，允许输入的最大长度为：400字符";
        }
        
        if (SensitiveWordUtils.isContaintSensitiveWord(newsDigest, 1)) {
            return "资讯摘要中包含敏感词汇:" + SensitiveWordUtils.getSensitiveWord(newsDigest, 1) + "，请检查后再保存";
        }
        
        if (StringUtils.isNotBlank(newsLabel) && newsLabel.length() > 500) {
            return "资讯关键词值超长，允许输入的最大长度为：500字符";
        }
        
        if (SensitiveWordUtils.isContaintSensitiveWord(newsInfo, 1)) {
            return "资讯内容中包含敏感词汇:" + SensitiveWordUtils.getSensitiveWord(newsInfo, 1) + "，请检查后再保存";
        }
        
        if (StringUtils.isNotBlank(newsFrom) && newsFrom.length() > 50) {
            return "来源值超长，允许输入的最大长度为：50字符";
        }
        
        if (StringUtils.isNotBlank(newsAuthor) && newsAuthor.length() > 100) {
            return "新闻作者值超长，允许输入的最大长度为：100字符";
        }
        if (StringUtils.isBlank(newsTitle)) {
            return "资讯标题不能为空";
        }
        
        if (StringUtils.isBlank(newsInfo)) {
            return "资讯内容不能为空";
        }
        return null;
    }
}
